Method and device for predicting message recipients

ABSTRACT

A method and communications device is provided for determining a list of possible additional recipients to add to an electronic message that is composed by a user of the communications device for transmission to another communications device. Once the user indicates that there is an additional recipient for the distribution list of the electronic message, the device employs the method to create the list of possible additional recipients. The method may be implemented on a computer program product.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to, priorU.S. patent application Ser. No. 12/949,847, filed on Nov. 19, 2010,which is a continuation of U.S. patent application Ser. No. 11/216,119,filed on Sep. 1, 2005 and issued to patent as U.S. Pat. No. 7,853,656.The entire contents of U.S. patent application serial no. 12/949,847 andU.S. patent application Ser. No. 11/216,119 are hereby incorporated byreference.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by any one of the patentdocument or patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightswhatsoever.

FIELD

The embodiments described herein relate to the field of datacommunication. More particularly, the embodiments described hereinrelate to a method and device for message delivery between communicationdevices.

BACKGROUND

Message delivery refers to the communication of messages between datacommunication devices. The messages may include e-mail, instant messagesor exchanging documents between two or more data communication devices.Data communication devices generally include any computing device suchas a personal computer, laptop, as well as facsimile machines, personaldigital assistants or other mobile communication devices. The datacommunication may be “wireless” or “wired”.

E-mail messages, and particularly wireless e-mail messages, are one ofthe more popular forms of data communication. E-mail messages areusually sent to more than one recipient. In order to enter multiplerecipients, the sender manually inputs the name of each recipient in the“TO”, “CC” or “BCC” address fields of the e-mail message. However,entering multiple recipients, especially for emails that are sent to alarge number of recipients, may be a slow and cumbersome task if theuser is required to type all of or a portion of the recipient's name.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the embodiments described herein and toshow more clearly how it may be carried into effect, reference will nowbe made, by way of example only, to the accompanying drawings which showat least one exemplary embodiment in which:

FIG. 1 is a block diagram of an exemplary embodiment of a mobilecommunication device;

FIG. 2 is a block diagram of a communication subsystem component of themobile communication device of FIG. 1;

FIG. 3 is a block diagram of an exemplary embodiment of a node of awireless network that the mobile communications device of FIG. 1 maycommunicate with;

FIG. 4 is a block diagram of an exemplary embodiment of a host systemthat the mobile communications device of FIG. 1 may communicate with;

FIG. 5A is an illustration of an exemplary embodiment of a messagecreated on the mobile communication device of FIG. 1;

FIG. 5B is an illustration of an exemplary embodiment of a trigger eventfor creating a list of additional possible recipients for the message ofFIG. 5A;

FIG. 5C is an illustration of an exemplary list of possible additionalrecipients for the message of FIG. 5A;

FIG. 6 is a flowchart diagram illustrating an exemplary embodiment of arecipient prediction method that may be used to create a list ofadditional possible recipients;

FIG. 7 is a flowchart diagram illustrating an alternative exemplaryembodiment of a recipient prediction method that may be used to create alist of additional possible recipients;

FIG. 8 is a flowchart diagram illustrating another alternative exemplaryembodiment of a recipient prediction method that may be used to create alist of additional possible recipients;

FIG. 9 is a flowchart diagram illustrating another alternative exemplaryembodiment of a recipient prediction method that may be used to create alist of additional possible recipients; and,

FIG. 10 is a flowchart diagram illustrating another alternativeexemplary embodiment of a recipient prediction method that may be usedto create a list of additional possible recipients.

DETAILED DESCRIPTION

It will be appreciated that for simplicity and clarity of illustration,where considered appropriate, reference numerals may be repeated amongthe figures to indicate corresponding or analogous elements or steps. Inaddition, numerous specific details are set forth in order to provide athorough understanding of the embodiments described herein. However, itwill be understood by those of ordinary skill in the art that theembodiments described herein may be practiced without these specificdetails. In other instances, well-known methods, procedures andcomponents have not been described in detail so as not to obscure theembodiments described herein.

Furthermore, this description is not to be considered as limiting thescope of the embodiments described herein, but rather as merelydescribing the implementation of the various embodiments describedherein.

The embodiments described herein generally have applicability in thefield of data communication for communication devices that can sendmessages to two or more recipients. To facilitate an understanding ofthe embodiments, the embodiments will be described in terms of e-mailcommunication on a mobile wireless communications device that can sendmessages to two or more recipients. However, it should be understoodthat the embodiments are not limited to e-mail messages or mobilecommunication devices. Examples of applicable communication devicesinclude pagers, cellular phones, cellular smart-phones, wirelessorganizers, personal digital assistants, computers, laptops, handheldwireless communication devices, wirelessly enabled notebook computersand the like, each of which is capable of sending messages to two ormore recipients.

Some embodiments make use of a mobile communication device, hereafterreferred to as a mobile device, that is a two-way communication devicewith advanced data communication capabilities having the capability tocommunicate with other computer systems. The mobile device may alsoinclude the capability for voice communications. Depending on thefunctionality provided by the mobile device, it may be referred to as adata messaging device, a two-way pager, a cellular telephone with datamessaging capabilities, a wireless Internet appliance, or a datacommunication device (with or without telephony capabilities). Themobile device communicates with other devices through a network oftransceiver stations. To aid the reader in understanding the structureof the mobile device and how it communicates with other devices and hostsystems, reference will now be made to FIGS. 1 through 4.

Referring first to FIG. 1, shown therein is a block diagram of a mobiledevice 100 in one exemplary implementation. The mobile device 100comprises a number of components, the controlling component being amicroprocessor 102 which controls the overall operation of mobile device100. Communication functions, including data and voice communications,are performed through a communication subsystem 104. The communicationsubsystem 104 receives messages from and sends messages to a wirelessnetwork 200. In this exemplary implementation of the mobile device 100,the communication subsystem 104 is configured in accordance with theGlobal System for Mobile Communication (GSM) and General Packet RadioServices (GPRS) standards. The GSM/GPRS wireless network is usedworldwide and it is expected that these standards will be supersededeventually by Enhanced Data GSM Environment (EDGE) and Universal Mobile

Telecommunications Service (UMTS). New standards are still beingdefined, but it is believed that they will have similarities to thenetwork behaviour described herein, and it will also be understood bypersons skilled in the art that the embodiments described herein areintended to use any other suitable standards that are developed in thefuture. The wireless link connecting the communication subsystem 104with the wireless network 200 represents one or more different RadioFrequency (RF) channels, operating according to defined protocolsspecified for GSM/GPRS communications. With newer network protocols,these channels are capable of supporting both circuit switched voicecommunications and packet switched data communications.

Although the wireless network 200 associated with mobile device 100 is aGSM/GPRS wireless network in one exemplary implementation, otherwireless networks may also be associated with the mobile device 100 invariant implementations. The different types of wireless networks thatmay be employed include, for example, data-centric wireless networks,voice-centric wireless networks, and dual-mode networks that can supportboth voice and data communications over the same physical base stations.Combined dual-mode networks include, but are not limited to, CodeDivision Multiple Access (CDMA) or CDMA2000 networks, GSM/GPRS networks(as mentioned above), and future third-generation (3G) networks likeEDGE and UMTS. Some other examples of data-centric networks include WiFi802.11, Mobitex™ and DataTAC™ network communication systems. Examples ofother voice-centric data networks include Personal Communication Systems(PCS) networks like GSM and Time Division Multiple Access (TDMA)systems.

The microprocessor 102 also interacts with additional subsystems such asa Random Access Memory (RAM) 106, a flash memory 108, a display 110, anauxiliary input/output (I/O) subsystem 112, a data port 114, a keyboard116, a speaker 118, a microphone 120, short-range communicationssubsystem 122 and other device subsystems 124.

Some of the subsystems of the mobile device 100 performcommunication-related functions, whereas other subsystems may provide“resident” or on-device functions. By way of example, the display 110and the keyboard 116 may be used for both communication-relatedfunctions, such as entering a text message for transmission over thenetwork 200, and device-resident functions such as a calculator or tasklist. Operating system software used by the microprocessor 102 istypically stored in a persistent store such as the flash memory 108,which may alternatively be a read-only memory (ROM) or similar storageelement (not shown). Those skilled in the art will appreciate that theoperating system, specific device applications, or parts thereof, may betemporarily loaded into a volatile store such as the RAM 106.

The mobile device 100 may send and receive communication signals overthe wireless network 200 after required network registration oractivation procedures have been completed. Network access is associatedwith a subscriber or user of the mobile device 100. To identify asubscriber, the mobile device 100 requires a SIM/RUIM card 126 (i.e.Subscriber Identity Module or a Removable User Identity Module) to beinserted into a SIM/RUIM interface 128 in order to communicate with anetwork. The SIM card or RUIM 126 is one type of a conventional “smartcard” that can be used to identify a subscriber of the mobile device 100and to personalize the mobile device 100, among other things. Withoutthe SIM card 126, the mobile device 100 is not fully operational forcommunication with the wireless network 200. By inserting the SIMcard/RUIM 126 into the SIM/RUIM interface 128, a subscriber can accessall subscribed services. Services may include: web browsing andmessaging such as e-mail, voice mail, Short Message Service (SMS), andMultimedia Messaging Services (MMS). More advanced services may include:point of sale, field service and sales force automation. The SIMcard/RUIM 126 includes a processor and memory for storing information.Once the SIM card/RUIM 126 is inserted into the SIM/RUIM interface 128,it is coupled to the microprocessor 102. In order to identify thesubscriber, the SIM card/RUIM 126 contains some user parameters such asan International

Mobile Subscriber Identity (IMSI). An advantage of using the SIMcard/RUIM 126 is that a subscriber is not necessarily bound by anysingle physical mobile device. The SIM card/RUIM 126 may storeadditional subscriber information for a mobile device as well, includingdatebook (or calendar) information and recent call information.Alternatively, user identification information can also be programmedinto the flash memory 108.

The mobile device 100 is a battery-powered device and includes a batteryinterface 132 for receiving one or more rechargeable batteries 130. Thebattery interface 132 is coupled to a regulator (not shown), whichassists the battery 130 in providing power V+ to the mobile device 100.Although current technology makes use of a battery, future technologiessuch as micro fuel cells may provide the power to the mobile device 100.

The microprocessor 102, in addition to its operating system functions,enables execution of software applications 134 on the mobile device 100.The subset of software applications 134 that control basic deviceoperations, including data and voice communication applications, willnormally be installed on the mobile device 100 during its manufacture.

The software applications 134 include a message application 136 and arecipient prediction module 138. The message application 136 can be anysuitable software program that allows a user of the mobile device 100 tosend and receive electronic messages. Various alternatives exist for themessage application 136 as is well known to those skilled in the art.Messages that have been sent or received by the user are typicallystored in the flash memory 108 of the mobile device 100 or some othersuitable storage element in the mobile device 100. In an alternativeembodiment, some of the sent and received messages may be storedremotely from the device 100 such as in a data store of an associatedhost system that the mobile device 100 communicates with. For instance,in some cases, only recent messages may be stored within the device 100while the older messages may be stored in a remote location such as thedata store associated with a message server. This may occur when theinternal memory of the device 100 is full or when messages have reacheda certain “age”, i.e. messages older than 3 months may be stored at aremote location. In an alternative implementation, all messages can bestored in a remote location while only recent messages can be stored onthe mobile device 100.

The recipient prediction module 138 can be used to predict a list ofadditional possible recipients when the user of the mobile device 100composes an electronic message with the message application 136 andindicates that the electronic message is to be sent to two or morerecipients. The operation of the recipient prediction module 138 isdiscussed in further detail below. The recipient prediction module 138can be created using any suitable software programming language as iswell known to those skilled in the art.

The mobile device 100 further includes a device state module 140, anaddress book 142, a Personal Information Manager (PIM) 144, and othermodules 146. The device state module 140 provides persistence, i.e.

the device state module 140 ensures that important device data is storedin persistent memory, such as the flash memory 108, so that the data isnot lost when the mobile device 100 is turned off or loses power. Theaddress book 142 provides information for a list of contacts for theuser. For a given contact in the address book, the information caninclude the name, phone number, work address and email address of thecontact, among other information. The other modules 146 may include aconfiguration module (not shown) as well as other modules that can beused in conjunction with the SIM/RUIM interface 128.

The PIM 144 has functionality for organizing and managing data items ofinterest to a subscriber, such as, but not limited to, e-mail, calendarevents, voice mails, appointments, and task items. A PIM application hasthe ability to send and receive data items via the wireless network 200.PIM data items may be seamlessly integrated, synchronized, and updatedvia the wireless network 200 with the mobile device subscriber'scorresponding data items stored and/or associated with a host computersystem. This functionality creates a mirrored host computer on themobile device 100 with respect to such items. This can be particularlyadvantageous when the host computer system is the mobile devicesubscriber's office computer system.

Additional applications may also be loaded onto the mobile device 100through at least one of the wireless network 200, the auxiliary I/Osubsystem 112, the data port 114, the short-range communicationssubsystem 122, or any other suitable device subsystem 124. Thisflexibility in application installation increases the functionality ofthe mobile device 100 and may provide enhanced on-device functions,communication-related functions, or both. For example, securecommunication applications may enable electronic commerce functions andother such financial transactions to be performed using the mobiledevice 100.

The data port 114 enables a subscriber to set preferences through anexternal device or software application and extends the capabilities ofthe mobile device 100 by providing for information or software downloadsto the mobile device 100 other than through a wireless communicationnetwork. The alternate download path may, for example, be used to loadan encryption key onto the mobile device 100 through a direct and thusreliable and trusted connection to provide secure device communication.The data port 114 may be any suitable port that enables datacommunication between the mobile device 100 and another computingdevice. The data port may be a serial or a parallel port. In someinstances, the data port 114 may be a USB port that includes data linesfor data transfer and a supply line that can provide a charging currentto charge the mobile device 100.

The short-range communications subsystem 122 provides for communicationbetween the mobile device 100 and different systems or devices, withoutthe use of the wireless network 200. For example, the subsystem 122 mayinclude an infrared device and associated circuits and components forshort-range communication. Examples of short-range communication includestandards developed by the Infrared Data Association (IrDA), Bluetooth,and the 802.11 family of standards developed by IEEE.

In use, a received signal such as a text message, an e-mail message, orweb page download will be processed by the communication subsystem 104and input to the microprocessor 102. The microprocessor 102 will thenprocess the received signal for output to the display 110 oralternatively to the auxiliary I/O subsystem 112. A subscriber may alsocompose data items, such as e-mail messages, for example, using thekeyboard 116 in conjunction with the display 110 and possibly theauxiliary I/O subsystem 112. The auxiliary subsystem 112 may includedevices such as: a touch screen, mouse, track ball, infrared fingerprintdetector, or a roller wheel with dynamic button pressing capability. Thekeyboard 116 is preferably an alphanumeric keyboard and/ortelephone-type keypad. However, other types of keyboards may also beused. A composed item may be transmitted over the wireless network 200through the communication subsystem 104.

For voice communications, the overall operation of the mobile device 100is substantially similar, except that the received signals are output tothe speaker 118, and signals for transmission are generated by themicrophone 120. Alternative voice or audio I/O subsystems, such as avoice message recording subsystem, may also be implemented on the mobiledevice 100. Although voice or audio signal output is accomplishedprimarily through the speaker 118, the display 110 may also be used toprovide additional information such as the identity of a calling party,duration of a voice call, or other voice call related information.

Referring now to FIG. 2, a block diagram of the communication subsystemcomponent 104 of FIG. 1 is shown. The communication subsystem 104comprises a receiver 150 and a transmitter 152, as well as associatedcomponents such as one or more embedded or internal antenna elements154, 156, Local Oscillators (LOS) 158, and a processing module such as aDigital Signal Processor (DSP) 160. As will be apparent to those skilledin the field of communications, the particular design of thecommunication subsystem 104 is dependent upon the communication networkwith which the mobile device 100 is intended to operate. Thus, it shouldbe understood that the design illustrated in FIG. 2 serves only as oneexam pie.

Signals received by the antenna 154 through the wireless network 200 areinput to the receiver 150, which may perform such common receiverfunctions as signal amplification, frequency down conversion, filtering,channel selection, and analog-to-digital (AID) conversion. AIDconversion of a received signal allows more complex communicationfunctions such as demodulation and decoding to be performed in the DSP160. In a similar manner, signals to be transmitted are processed,including modulation and encoding, by the DSP 160. These DSP-processedsignals are input to the transmitter 152 for digital-to-analog (DIA)conversion, frequency up conversion, filtering, amplification andtransmission over the wireless network 200 via the antenna 156. The DSP160 not only processes communication signals, but also provides forreceiver and transmitter control. For example, the gains applied tocommunication signals in the receiver 150 and transmitter 152 may beadaptively controlled through automatic gain control algorithmsimplemented in the DSP 160.

The wireless link between the mobile device 100 and the wireless network200 may contain one or more different channels, typically different RFchannels, and associated protocols used between the mobile device 100and the wireless network 200. An RF channel is a limited resource thatmust be conserved, typically due to limits in overall bandwidth andlimited battery power of the mobile device 100.

When the mobile device 100 is fully operational, the transmitter 152 istypically keyed or turned on only when it is sending to the wirelessnetwork 200 and is otherwise turned off to conserve resources.Similarly, the receiver 150 is periodically turned off to conserve poweruntil it is needed to receive signals or information (if at all) duringdesignated time periods.

Referring now to FIG. 3, a block diagram of an exemplary implementationof a node of the wireless network 200 is shown as 202. In practice, thewireless network 200 comprises one or more nodes 202. The mobile device100 communicates with the node 202. In the exemplary implementation ofFIG. 3, the node 202 is configured in accordance with General PacketRadio Service (GPRS) and Global Systems for Mobile (GSM) technologies.The node 202 includes a base station controller (BSC) 204 with anassociated tower station 206, a Packet Control Unit (PCU) 208 added forGPRS support in GSM, a Mobile Switching Center (MSC) 210, a HomeLocation Register (HLR) 212, a Visitor Location Registry (VLR) 214, aServing GPRS Support Node (SGSN) 216, a Gateway GPRS Support Node (GGSN)218, and a Dynamic Host Configuration Protocol (DHCP) 220. This list ofcomponents is not meant to be an exhaustive list of the components ofevery node 202 within a GSM/GPRS network, but rather a list ofcomponents that are commonly used in communications through the wirelessnetwork 200.

In a GSM network, the MSC 210 is coupled to the BSC 204 and to alandline network, such as a Public Switched Telephone Network (PSTN) 222to satisfy circuit switching requirements. The connection through PCU208, SGSN 216 and GGSN 218 to the public or private network (Internet)224 (also referred to herein generally as a shared networkinfrastructure) represents the data path for GPRS capable mobiledevices. In a GSM network extended with GPRS capabilities, the BSC 204also contains a Packet Control Unit (PCU) 208 that connects to the SGSN216 to control segmentation, radio channel allocation and to satisfypacket switched requirements. To track mobile device location andavailability for both circuit switched and packet switched management,the HLR 212 is shared between the MSC 210 and the SGSN 216. Access tothe VLR 214 is controlled by the MSC 210.

The station 206 is a fixed transceiver station. The station 206 and BSC204 together form the fixed transceiver equipment. The fixed transceiverequipment provides wireless network coverage for a particular coveragearea commonly referred to as a “cell”. The fixed transceiver equipmenttransmits communication signals to and receives communication signalsfrom mobile devices within its cell via the station 206. The fixedtransceiver equipment normally performs such functions as modulation andpossibly encoding and/or encryption of signals to be transmitted to themobile device 100 in accordance with particular, usually predetermined,communication protocols and parameters, under control of its controller.The fixed transceiver equipment similarly demodulates and possiblydecodes and decrypts, if necessary, any communication signals receivedfrom the mobile device 100 within its cell. The communication protocolsand parameters may vary between different nodes. For example, one nodemay employ a different modulation scheme and operate at differentfrequencies than other nodes.

For all mobile devices 100 registered with a specific network, permanentconfiguration data such as a user profile is stored in the HLR 212. TheHLR 212 also contains location information for each registered mobiledevice and can be queried to determine the current location of a mobiledevice. The MSC 210 is responsible for a group of location areas andstores the data of the mobile devices currently in its area ofresponsibility in the VLR 214. Further, the VLR 214 also containsinformation on mobile devices that are visiting other networks. Theinformation in the VLR 214 includes part of the permanent mobile devicedata transmitted from the HLR 212 to the VLR 214 for faster access. Bymoving additional information from a remote HLR 212 node to the VLR 214,the amount of traffic between these nodes can be reduced so that voiceand data services can be provided with faster response times and at thesame time require less use of computing resources.

The SGSN 216 and GGSN 218 are elements added for GPRS support; namelypacket switched data support, within GSM. The SGSN 216 and MSC 210 havesimilar responsibilities within the wireless network 200 by keepingtrack of the location of each mobile device 100. The SGSN 216 alsoperforms security functions and access control for data traffic on thewireless network 200. The GGSN 218 provides internetworking connectionswith external packet switched networks and connects to one or moreSGSN's 216 via an Internet Protocol (IP) backbone network operatedwithin the network 200. During normal operations, a given mobile device100 must perform a “GPRS Attach” to acquire an IP address and to accessdata services. This requirement is not present in circuit switched voicechannels as Integrated Services Digital Network (ISDN) addresses areused for routing incoming and outgoing calls. Currently, all GPRScapable networks use private, dynamically assigned IP addresses, thusrequiring the DHCP server 220 to be connected to the GGSN 218. There aremany mechanisms for dynamic IP assignment, including using a combinationof a Remote Authentication Dial-In User Service (RADIUS) server and DHCPserver. Once the GPRS Attach is complete, a logical connection isestablished from the mobile device 100, through the PCU 208, and theSGSN 216 to an Access Point Node (APN) within the GGSN 218. The APNrepresents a logical end of an IP tunnel that can either access directInternet compatible services or private network connections. The APNalso represents a security mechanism for the wireless network 200,insofar as each mobile device 100 must be assigned to one or more APNsand the mobile devices 100 cannot exchange data without first performinga GPRS Attach to an APN that it has been authorized to use. The APN maybe considered to be similar to an Internet domain name such as“myconnection.wireless.com”.

Once the GPRS Attach is complete, a tunnel is created and all traffic isexchanged within standard IP packets using any protocol that can besupported in IP packets. This includes tunneling methods such as IP overIP as in the case with some IPSecurity (IPsec) connections used withVirtual Private Networks (VPN). These tunnels are also referred to asPacket Data Protocol (PDP) contexts and there are a limited number ofthese available in the wireless network 200. To maximize use of the PDPContexts, the wireless network 200 will run an idle timer for each PDPContext to determine if there is a lack of activity. When the mobiledevice 100 is not using its PDP Context, the PDP Context can bede-allocated and the IP address returned to the IP address pool managedby the DHCP server 220.

Referring now to FIG. 4, shown therein is a block diagram illustratingcomponents of an exemplary configuration of a host system 250. In oneinstance, the host system 250 may be a corporate enterprise. The hostsystem 250 will typically be a corporate office or other local areanetwork (LAN), but may also be a home office computer system or someother private system, for example, in variant implementations. In theexample shown in FIG. 4, the host system 250 is depicted as a LAN of anorganization to which a user of the mobile device 100 belongs.Typically, a plurality of mobile devices can communicate wirelessly withthe host system 250 through one or more nodes 202.

The host system 250 comprises a number of network components connectedto each other by the LAN connections 260. For instance, a user's desktopcomputer 262 a with an accompanying cradle 264 for the user's mobiledevice 100 is situated on a LAN connection. The cradle 264 for themobile device 100 may be coupled to the computer 262 a by a serial or aUniversal Serial Bus (USB) connection, for example. Other user computers262 b are also situated on the LAN 260, and each may or may not beequipped with an accompanying cradle 264 that is suitable for a mobiledevice. The cradle 264 facilitates the loading of information (e.g. PIMdata, private symmetric encryption keys to facilitate securecommunications between the mobile device 100 and the host system 250,etc) from the user computer 262 a to the mobile device 100, and may beparticularly useful for bulk information updates often performed ininitializing the mobile device 100 for use. The information downloadedto the mobile device 100 may include certificates used in the exchangeof messages.

It will be understood by persons skilled in the art that the usercomputers 262 a, 262 b will typically also be connected to otherperipheral devices, such as printers, etc. which are not explicitlyshown in FIG. 4. Furthermore, only a subset of network components of thehost system 250 are shown in FIG. 4 for ease of exposition, and it willbe understood by persons skilled in the art that the host system 250will comprise additional components that are not explicitly shown inFIG. 4 for this exemplary configuration. More generally, the host system250 may represent a smaller part of a larger network (not shown) of theorganization, and may comprise different components and/or be arrangedin different topologies than that shown in the exemplary embodiment ofFIG. 4.

In this exemplary embodiment, the mobile device 100 communicates withthe host system 250 through node 202 of the wireless network 200 and ashared network infrastructure 224 such as a service provider network orthe public Internet. Access to the host system 250 may be providedthrough one or more routers (not shown), and computing devices of thehost system 250 may operate from behind a firewall or proxy server 266.The proxy server 266 provides a secure node and a wireless internetgateway for the host system 250. The proxy server 266 intelligentlyroutes data to the correct destination server.

In a variant implementation, the host system 250 includes a wireless VPNrouter (not shown) to facilitate data exchange between the host system250 and the mobile device 100. The wireless VPN router enables a VPNconnection to be established directly through a specific wirelessnetwork to the mobile device 100. The wireless VPN router can be usedwith the Internet Protocol (IP) Version 6 (IPV6) and IP-based wirelessnetworks. This protocol can provide enough IP addresses so that eachmobile device has a dedicated IP address, making it possible to pushinformation to a mobile device at any time. An advantage of using awireless VPN router is that it can be an off-the-shelf VPN component,and does not require a separate wireless gateway and separate wirelessinfrastructure. A VPN connection can preferably be a TransmissionControl Protocol (TCP)/IP or User Datagram Protocol (UDP)/IP connectionfor delivering the messages directly to the mobile device 100 in thisalternative implementation.

Messages intended for a user of the mobile device 100 are initiallyreceived by a message server 268 of the host system 250. Such messagesmay originate from any number of sources. For instance, a message mayhave been sent by a sender from the computer 262 b within the hostsystem 250, from a different mobile device (not shown) connected to thewireless network 200 or to a different wireless network, or from adifferent computing device or other device capable of sending messages,via the shared network infrastructure 224, possibly through anapplication service provider (ASP) or Internet service provider (ISP),for example.

The message server 268 typically acts as the primary interface for theexchange of messages, particularly e-mail messages, within theorganization and over the shared network infrastructure 224. Each userin the organization that has been set up to send and receive messages istypically associated with a user account managed by the message server268. Some exemplary implementations of the message server 268 include aMicrosoft Exchanger™ server, a Lotus Domino™ server, a Novell Groupwise™server, or another suitable mail server installed in a corporateenvironment. In some implementations, the host system 250 may comprisemultiple message servers 268. The message server 268 may also be adaptedto provide additional functions beyond message management, including themanagement of data associated with calendars and task lists, forexample.

When messages are received by the message server 268, they are typicallystored in a data store associated with the message server 268. In analternative embodiment, the data store may be a separate hardware unit(not shown) that the message server 268 communicates with. Messages canbe subsequently retrieved and delivered to users by accessing themessage server 268. For instance, an e-mail client application operatingon a user's computer 262 a may request the e-mail messages associatedwith that user's account stored on the data store associated with themessage server 268. These messages are then retrieved from the datastore and stored locally on the computer 262 a. The data storeassociated with the message server 268 can store copies of each messagethat is locally stored on the mobile device 100. Alternatively, the datastore associated with the message server 268 can store all of themessages for the user of the mobile device 100 and only a smaller numberof messages can be stored on the mobile device 100 to conserve memory.For instance, the most recent messages (in the past two to three monthsfor example) can be stored on the mobile device 100.

When operating the mobile device 100, the user may wish to have e-mailmessages retrieved for delivery to the handheld. An e-mail clientapplication operating on the mobile device 100 may also request messagesassociated with the user's account from the message server 268. Thee-mail client may be configured (either by the user or by anadministrator, possibly in accordance with an organization's informationtechnology (IT) policy) to make this request at the direction of theuser, at some pre-defined time interval, or upon the occurrence of somepre-defined event. In some implementations, the mobile device 100 isassigned its own e-mail address, and messages addressed specifically tothe mobile device 100 are automatically redirected to the mobile device100 as they are received by the message server 268.

To facilitate the wireless communication of messages and message-relateddata between the mobile device 100 and components of the host system250, a number of wireless communication support components 270 may beprovided. In this exemplary implementation, the wireless communicationsupport components 270 can include a message management server 272, amobile data server 274 and a contact server 276, for example.

The message management server 272 can be used to specifically providesupport for the management of messages, such as e-mail messages, thatare to be handled by mobile devices. Generally, while messages are stillstored on the message server 268, the message management server 272 canbe used to control when, if, and how messages are sent to the mobiledevice 100. The message management server 272 also facilitates thehandling of messages composed on the mobile device 100, which are sentto the message server 268 for subsequent delivery.

For example, the message management server 272 may monitor the user's‘mailbox” (e.g. the message store associated with the user's account onthe message server 268) for new e-mail messages, and applyuser-definable filters to new messages to determine if and how themessages are relayed to the user's mobile device 100. The messagemanagement server 272 may also compress and encrypt new messages (e.g.using an encryption technique such as Data Encryption Standard (DES) orTriple DES) and push them to the mobile device 100 via the sharednetwork infrastructure 224 and the wireless network 200. The messagemanagement server 272 may also receive messages composed on the mobiledevice 100 (e.g. encrypted using Triple DES), decrypt and decompress thecomposed messages, re-format the composed messages if desired so thatthey will appear to have originated from the user's computer 262 a, andre-route the composed messages to the message server 268 for delivery.

Certain properties or restrictions associated with messages that are tobe sent from and/or received by the mobile device 100 can be defined(e.g. by an administrator in accordance with IT policy) and enforced bythe message management server 272. These may include whether the mobiledevice 100 may receive encrypted and/or signed messages, minimumencryption key sizes, whether outgoing messages must be encrypted and/orsigned, and whether copies of all secure messages sent from the mobiledevice 100 are to be sent to a pre-defined copy address, for example.

The message management server 272 may also be adapted to provide othercontrol functions, such as only pushing certain message information orpre-defined portions (e.g. “blocks”) of a message stored on the messageserver 268 to the mobile device 100. For example, in one instance, whena message is initially retrieved by the mobile device 100 from themessage server 268, the message management server 272 may push only thefirst part of a message to the mobile device 100, with the part being ofa pre-defined size (e.g. 2 KB). The user can then request more of themessage, to be delivered in similar-sized blocks by the messagemanagement server 272 to the mobile device 100, possibly up to a maximumpre-defined message size.

Accordingly, the message management server 272 facilitates bettercontrol over the type of data and the amount of data that iscommunicated to the mobile device 100, and can help to minimizepotential waste of bandwidth or other resources.

The mobile data server 274 encompasses any other server that storesinformation that is relevant to the corporation. The mobile data server274 may include, but is not limited to, databases, online data documentrepositories, customer relationship management (CRM) systems, orenterprise resource planning (ERP) applications.

The contact server 276 can provide information for a list of contactsfor the user in a similar fashion to the address book 142 on the mobiledevice 100. Accordingly, for a given contact, the contact server 276 caninclude the name, phone number, work address and email address of thecontact, among other information. The contact server 276 can alsoprovide a global address list that contains the contact information forall of the contacts associated with the host system 250.

It will be understood by persons skilled in the art that the messagemanagement server 272, the mobile data server 274 and the contact server276 need not be implemented on separate physical servers within the hostsystem 250. For example, some or all of the functions associated withthe message management server 272 may be integrated with the messageserver 268, or some other server in the host system 250. Furthermore,the host system 250 may comprise multiple message management servers272, particularly in variant implementations where a large number ofmobile devices need to be supported.

Referring now to FIG. 5A, shown therein is an illustration of anexemplary embodiment of a current electronic message 300 created on themobile device 100 of FIG. 1. The message 300 is created on the mobiledevice 100 using the message application 136. The message 300 hasvarious address fields including the “To”, “Cc” (Carbon copy), and “Bcc”(Blind carbon copy) address fields. There is currently one knownrecipient “Dave Cross” indicated by the email address“dcross@hotmail.com” in the “To” address field 302. The entries in the“To”, “Cc” and “Bcc” address fields of the message 300 collectively forma distribution list 304 for the message 300.

The message 300 further includes a subject field 306 and a message body308. The subject field “Project Status” indicates the subject of themessage 300. The subject field 306, in alternative embodiments, may alsoindicate whether the message 300 is an original message, a forwardedmessage (indicated by the label “FW” for example), or a replied message(indicated by the label “RE” for example).

The message body 308 contains the content of the message 300. Themessage body 308 has several components including an opening salutation310 (e.g. “Hi Dave”), a main body 312, and a closing signature 314 (e.g.“Tom”). The content of each individual component of the message body 308may be scanned by the microprocessor 102 of the device 100, or by one ofthe servers 268, 272 and 274 of the host system 250. In someembodiments, information provided by a component of the message body 308can be used to predict possible recipients to add to the distributionlist 304. The message body 308 may be a “new” message body that the userhas just composed prior to adding recipients to the distribution list,or the message 300 may be a forwarded or replied message in which atleast a portion of the message body 308 is previously provided in theoriginal message sent to the user.

Referring now to FIG. 5B, shown therein is an illustration of anexemplary embodiment of a trigger event for creating a list ofadditional possible recipients for the current electronic message 300.In this example, the trigger event is that the user of the mobile device100 wishes to add another recipient to the distribution list 304.Another example of a trigger event is when the user wishes to invitepeople to a meeting (in this case all of the embodiments of recipientprediction described herein are applicable). A menu list 316 associatedwith the message 300 is displayed by the device 100 to allow the user toperform various operations on the message 300 such as sending themessage 300, saving the message 300 as a draft for laterrevision/sending, adding another recipient to the distribution list 304,and the like. The user may display the menu list 316 by activelyselecting this option using one of the multiple input means of thedevice 100. For example, the menu list 316 may be displayed by selectinga pre-defined key on the keyboard 116, touching a portion of the display110, providing a voice command via the microphone 120, or by using ascroll-wheel or roller control mechanism which can be provided by theauxiliary I/O 112 in some embodiments.

In this example, the user selects the “Add To:” option 318 to add arecipient to the “To” address field of the distribution list 304 of themessage 300. The user may also select the “Add Cc:” option 320 to add arecipient to the “Cc” address field of the distribution list 304 of themessage 300. In addition, the user may also select the “Add Bcc” option322 to add a recipient to the “Bcc” address field of the distributionlist 304. The “attach address” option 324 allows the user to sendaddress information (much like a business card) via the mobile device100. The option 324 is optional.

In one embodiment, the trigger event occurs when the user selects anyone of the “Add To:”, “Add Cc:” and “Add Bcc” options 318, 320 and 322and there is already a known recipient in the distribution list 304.When the trigger event occurs, the message application 136 instructs therecipient prediction module 138 to execute a recipient prediction methodto predict possible additional recipients that the user wishes to add tothe distribution list 304. The recipient prediction method is describedin more detail below. Once the recipient prediction method is executed,the mobile device 100 may provide an indication to the user thatpossible additional recipients are being predicted. This indication maybe a visual or auditory indication. For example, a dialog box may bedisplayed on the display 110 or a unique sound may be output via thespeaker 118. However, providing an indication is optional since it maybe understood by the user that the default operation of the messageapplication 136 is to invoke the recipient prediction method wheneverthe triggering event occurs.

Referring now to FIG. 50, shown therein is an illustration of anexemplary list of possible additional recipients 326 for the currentelectronic message 300. The list of possible additional recipients 326is displayed once the recipient prediction method has executed based onthe current recipients in the distribution list 304 at the time thetriggering event occurred. In this exemplary embodiment, the recipientprediction method has scanned one or more associated data stores (i.e.internal to the device 100 and/or remote) of previously sent or receivedmessages for messages in which the current recipient “Dave Cross” islisted in the distribution list (i.e. as a recipient or a sender) and,based on these messages, builds the list of possible additionalrecipients 326 and displays this list 326 to the user.

In this example, the list of possible additional recipients 326 isprovided along with a manual entry option 328. The possible additionalrecipients 328 in this example are: “David Yaw” and “Harry Guy”. If therecipient prediction method is successful and the user of the device 100actually intended to select either “David Yaw” or “Harry Guy”, then theuser simply selects one of these choices. In an alternative embodiment,the user may select two or more of the possible additional recipients ifthey are correct using an appropriate combination of input means. Forinstance, the user may depress a given key while selecting each of thepossible additional recipients that are correct and then releases thekey. This reduces the time needed for selecting recipients for thecurrent electronic message 300.

In a further embodiment, the possible additional recipient that is themost likely “candidate”, i.e. most likely possible additional recipient,based on some numeric value for example as discussed below, may be theonly recipient that is displayed. Further, the most likely possibleadditional recipient may be displayed by going to the full list ofcontacts (in the user's address book) and highlighting the most likelypossible additional recipient and providing this as a default choice tothe user. In some cases, the optional choice of manual entry may also bedisplayed. In cases, where there are two or more most likely possibleadditional recipients, then the prediction method may arbitrarily choosethe possible additional recipient that is to be shown as the defaultchoice.

If the list of possible additional recipients 326 does not include arecipient that the user intends to add to the distribution list 304 ofthe current message 300, then the user can select the manual entryoption 328. The user can then enter the next recipient by typing all ofthe recipient address. In other cases, the user may enter just a portionof the recipient address if the message application 136 providesfunctionality in which one or more recipient addresses is displayedwhich match the portion of the recipient address that the user has justentered, as is commonly known to those skilled in the art. If the listof possible additional recipients is empty, then the recipientprediction module 138 may simply provide the manual entry option 328that the user can select. Alternatively, the default action may be thatan empty text box is provided in the appropriate To, Cc, or Bcc fieldwithin which the user manually enters the intended recipient.

Referring now to FIG. 6, shown therein is a flowchart diagramillustrating an exemplary embodiment of the recipient prediction method350 that may be used to create a list of additional possible recipients.The recipient prediction method 350 is based, in part, on the fact thatif a previous electronic message has been sent to a given set ofrecipients, then future related electronic messages will be sent to thesame given set of recipients, or at least to some of the recipients fromthe given set of recipients.

The first step 352 of the method 350 includes creating a set of possiblerecipient lists based on the known recipients in the distribution list304. In this embodiment, the set of possible recipient lists isgenerated by searching through previous electronic messages that havebeen sent or received by the user and is stored in a message store onthe mobile device 100 associated with the message application 136.Alternatively, the electronic messages may be stored remotely from themobile device 100 such as on a data store associated with the messagemanagement server 272 in the host system 250. In either case, in thisparticular embodiment, a possible recipient list is included in the setof possible recipient lists only if the recipient list includes all ofthe known recipients in the distribution list 304 of the current message300.

For a given electronic message, the corresponding given recipient listincludes all of the recipients and the sender of the electronic message.Therefore, the given recipient list includes all of the entries in the“To”, “Cc”, “Bcc” and ‘Tram” address fields. It should be noted that the“From” address field is not shown in FIG. 5A since this figure depictsthe current electronic message 300 that is being composed and it has notyet been sent. However, almost all received electronic messages normallyinclude the “From” address field as is well known to those skilled inthe art. Duplicated entries for a given electronic message can beignored when generating the given recipient list. For instance, arecipient may be listed under more than one address field in error. Inanother instance, the user may have sent an email and entered themselvesas a recipient in the “Cc” or “Bcc” field. In this case, the user may belisted once in the given recipient list and, in some embodiments,associated with the “Cc” or “Bcc” field, as the case may be, and notwith the “FROM” field. Furthermore, recipients that are already listedin the distribution list 304 of the current message 300 are preferablyremoved at some point from the list of possible additional recipients sothat they are not provided as a choice to the user. This can occur whenthe set of possible recipient lists is being generated.

To reduce computational overhead, a master set of recipient lists may beinitialized by generating recipient lists for all messages in themessage store associated with the user's message account. For a givenelectronic message, the associated recipient list includes all of therecipients without any restriction other than to remove duplicatedrecipients. In some embodiments, the address field associated with therecipient may also be included in the recipient list. In someembodiments, filter data (discussed further below) associated with thegiven message may also be included in the given recipient list. In otherembodiments, both address field data and filter data may be included inthe recipient list. This master set of recipient lists can be used withany embodiment of the recipient prediction method.

The master set of recipient lists can then be updated by including thedistribution lists of electronic messages that were sent since themaster set of recipient lists was last updated or since it was createdif this is the first update. The master set of recipient lists can beupdated in a periodic fashion (e.g. on a daily or weekly basis), or itmay be updated as soon as an electronic message is sent or received bythe user of the mobile device 100. If the master set of recipient listshas been created, then step 352 of the method 350 includes scanningthrough the master set of recipient lists and adding any of therecipient lists which have at least one of the known recipients listedin the distribution list 304 thus far.

The next step 354 in the method 350 is to create a list of possibleadditional recipients based on occurrences of the recipients in the setof possible recipient lists. For a given recipient in a given possiblerecipient list, this step involves adding the given recipient to thelist of possible additional recipients if this given recipient is notalready in the distribution list 304 of the current message 300 and notalready in the list of possible additional recipients. The list ofpossible additional recipients may be sorted in some manner such asordering the last name of the recipients alphabetically. Other sortingtechniques may be used. However, this sorting is optional.

Step 356 of method 350 involves applying a threshold to reduce thenumber of possible additional recipients that are provided to the user.The threshold may be based on a predetermined number of possibleadditional recipients that are to be displayed to the user. Forinstance, one, two or five possible additional recipients may be shownto the user. The threshold may also be based on some other factor. Itshould be noted that step 356 is optional and the default option may beto list all of the possible additional recipients. Alternatively, thedefault option for step 356 may be to list the most likely candidatefrom the list of possible additional recipients. If two or more possibleadditional recipients are most likely, then one of these recipients maybe chosen arbitrarily. Various techniques may be used to determine themost likely possible additional recipient. For instance, embodimentsusing a numerical scoring or weighting method (examples of which areshown below) may be used to determine the most likely possibleadditional recipient.

Step 358 of the method 350 involves displaying the possible additionalrecipients to the user, either with or without thresholding as the casemay be. In addition to displaying possible additional recipients to theuser, step 358 may also include displaying a manual entry option to theuser or, if there are no possible additional recipients to display, thenstep 358 may just provide the user with the option of manually enteringthe next recipient to add to the distribution list 304 of the electronicmessage 300.

Referring now to FIG. 7, shown therein is a flowchart diagramillustrating an alternative exemplary embodiment of a recipientprediction method 400 that may be used to create a list of additionalpossible recipients. The method 400 includes providing an ordered listof additional possible recipients based on the count (i.e. frequency ofoccurrence) of these additional possible recipients in the set ofpossible recipient lists. Step 352 is carried out as previouslydescribed. Step 402 is similar to step 354 except that if the givenrecipient is already in the list of possible additional recipients, acount is associated with the given recipient and increased by one (i.e.the count is the number of occurrences of the given recipient in thelist of possible recipients that are searched). Step 404 then involvesordering the counted additional possible recipients based on the countin a decreasing manner. For counted possible additional recipients thathave the same number of occurrences or count, these possible additionalrecipients can then be sorted alphabetically or in some other suitablemanner.

Accordingly, method 350 not only provides a list of possible additionalrecipients, but rather gives priority to the possible additionalrecipients that are the best guesses or the most likely to be selectedamongst the list of all possible additional recipients. However,selection of any possible additional recipient in the displayed list isalso allowed.

Step 356 is optional. If step 356 is performed, thresholding may beapplied to display a predefined number of possible additionalrecipients. Alternatively, thresholding may be applied on the basis ofthe absolute or relative count of each possible additional recipient.The absolute count is the total number of times that a given possibleadditional recipient occurs in the set of possible recipient lists. Therelative count can be a percentage defined as the count of a givenpossible additional recipient divided by the highest count of a possibleadditional recipient. For instance, the following is an exemplary listof possible additional recipients and their associated count: {(SteveBrown, 4), (John Smith, 3), (Anna White, 2), (Linda Johnson, 2), (MarkBlack, 1), (Elizabeth Frum, 1), and (Jack Green, 1)}. The correspondingrelative count for this list is then {100, 75, 50, 50, 25, 25 and 25}.The threshold may be defined as a relative count of 50% or more.Accordingly, the displayed list of possible additional recipients is:{Steve Brown, John Smith, Anna White and Linda Johnson}. Step 358 isthen carried out as described previously and the list of possibleadditional recipients is displayed.

To further illustrate the operation of the recipient prediction method,reference will now be made to Table 1 which shows an exemplary masterset of recipient lists. The user is John Smith and he composes a messageand adds Mary Brown as the first recipient for the distribution list.John then indicates that he will add another recipient to thedistribution list. Both of the recipient prediction methods 350 and 400can use the master set of recipient lists to create a set of possiblerecipient lists which each include Mary Brown. This set will includelists 1, 2, 3, 5 and 6 in which there are two occurrences of JeffDavies, three occurrences of Dave Low, three occurrences of Steve White,and one occurrence of Paul Green. According to method 400, with nothresholding, the following list can be provided to the user: {Dave Low,Jeff Davies, Steve White, Paul Green}. Method 350 may provide a similarlist but in an unordered fashion. The user then picks Dave Low.

TABLE 1 Exemplary Master set of recipient lists 1) John Smith, MaryBrown, Jeff Davies, Dave Low 2) John Smith, Mary Brown, Steve White,Dave Low 3) John Smith, Steve White, Mary Brown, Jeff Davies 4) JohnSmith, Paul Green, Steve White, Dave Low, John Smith 5) John Smith, PaulGreen, Mary Brown, Dave Low 6) John Smith, Steve White, Mary Brown 7)John Smith, Paul Green

The user then indicates that another possible additional recipient willbe added to the current electronic message 300 and the recipientprediction method is executed once more. Note that in this case, therecipient prediction method may use the last generated set of possiblerecipient lists since these lists include the known recipients that havebeen selected by the user. Both of the recipient prediction methods 350and 400 will then use the previous set of possible recipient lists tocreate a new set of possible recipient lists which each include MaryBrown and Dave Low. This set will include lists 1, 2 and 5 in whichthere is one occurrence of Jeff Davies, Steve White, and Paul Green. Theuser may pick Steve White.

The user then indicates that another possible additional recipient willbe added to the current electronic message 300 and the recipientprediction method is executed once more. Both of the recipientprediction methods 350 and 400 will then go through the previous set ofpossible recipient lists and create a new set of possible recipientlists which each include Mary Brown, Dave Low and Jeff White. This setwill include list 2 in which there are no occurrences of any otherrecipients. In this case, the method can provide the manual entry optionto the user.

Referring now to FIG. 8, shown therein is a flowchart diagramillustrating another alternative exemplary embodiment of a recipientprediction method 450 that may be used to create a list of additionalpossible recipients. Step 452 is similar to step 352 except that step452 now includes noting the address field associated with each recipientin a given recipient list. For instance, rather than simply having arecipient list such as {Steve Brown, Linda Johnson, Elizabeth Frum}, therecipient list now indicates the associated address field as follows:{(Steve Brown, “From”), (Linda Johnson, “To”), (Elizabeth Frum, “Cc”)).

Step 454 of the method 450 is similar to step 402 except rather thanjust noting the frequency of a given recipient in the set of possiblerecipient lists that include the known recipients in the distributionlist 304 of the current message 300, step 454 also notes the addressfield of the given recipient and how many times this occurs. Forinstance, assume that a recipient “John Smith” is listed in 7 messageswhich have all of the known recipients in the distribution list in thecurrent message 300, and in which “John Smith” is listed in the “To”address field 5 times, in the “Cc” field 2 times and in the “Bcc” field0 times. For method 400, the entry in the list of possible additionalrecipients can be (“John Smith”, 7). In contrast, for method 450, theentry in the list of possible additional recipients can be: (“JohnSmith”, “To”, 5, “Cc”, 2) or (“John Smith”, 5, 2, 0) where it is assumedthat the count for the “To”, “Cc” and “Bcc” address fields automaticallyfollow the recipient name in this exemplary order.

Step 456 of the method 450 then includes applying an overall weight tothe recipients listed in the list of possible additional recipientsbased on the number of occurrences of a given recipient in the variousaddress fields. Alternatively, this weighting step may also be done whenthe set of possible recipient lists is being generated in step 454. Theweights are based on the address field associated with a given possiblerecipient and can be generated in a number of different ways. Forinstance, if the user has indicated that a recipient is to be added tothe “To” address field, then all instances of a given possible recipientin the “To” address field can be provided with a larger weight than allinstances of the given possible recipient in the “Cc” or “Bcc” addressfields on the assumption that the user will likely want to pick the nextrecipient from recipients that were listed in the “To” address field ofprevious electronic messages. For instance, in this example, eachoccurrence of a possible recipient with an associated address field of“To” can be given a weight of three, each occurrence of a possiblerecipient with an associated address field of “Cc” can be given a weightof two and each occurrence of a possible recipient with an associatedaddress field of “Bcc” can be given a weight of one. This provides anoverall weight of 19 for the example of “John Smith” given above. For agiven possible additional recipient, each weighted occurrence can beadded to provide an overall weight for the given possible additionalrecipient. The weighted possible additional recipients can then beordered based on overall weight in a decreasing fashion. Steps 356 and358 are then performed as previously described.

Referring now to FIG. 9, shown therein is a flowchart diagramillustrating another alternative exemplary embodiment of a recipientprediction method 500 that may be used to create a list of additionalpossible recipients. Step 502′ is similar to step 352 in methods 350 and400 except that additional information is included in the recipientlists such as keywords that can be used as filter data to further reducethe set of possible recipient lists. This filter data can includespecific words in the title of the email such as “Project”, “Patent”, awork ID number, the label “RE” or “FW” if the corresponding message is areplied message or a forwarded message respectively, and the like.Filter data may also be obtained from a certain component in the body ofthe message. Timestamps that indicate when a message was sent orreceived may also be used as filter data. For instance, the user maysimply wish to search through stored messages that were received or sentin the past several weeks.

Step 504 then involves applying filter input data, as well as thecurrent known recipients in the distribution list 304 of the currentmessage 300, to the set of possible recipient lists to reduce the numberof lists when searching for possible additional recipients to add to thedistribution list 304. The filter input data may be automaticallyobtained from a corresponding portion of the current message 300 such asthe subject 306 or a component of the body 308. In an alternative, theuser may be prompted to provide the filter input data by providing atext entry or selecting from a list of choices. When filter input datahas been determined from the current message 300, this filter input datais used to remove any list from the set of possible recipient lists thatdoes not include matching filter data.

Further variations may be incorporated into the filter input data. Forinstance, one implementation may allow the user to also enter filterinput data after the list of possible additional recipients has beengenerated (this occurs after step 358 and is not shown in FIG. 9). Onevariation is to enable search refinement by allowing the user to entercharacters or partial names upon viewing the list of possible additionalrecipients. For example, the user may enter the first letter of thefirst name or the last name of the desired possible additionalrecipient. In another instance, the user may type in the first letter ofboth the first name and the last name of the desired possible additionalrecipient.

The method 500 then includes applying steps 354, 356 and 358 aspreviously described. It should be noted that the gathering of filterdata and application of filtering the set of possible recipient listscan be included in any one of methods 400 and 450.

Referring now to FIG. 10, shown therein is a flowchart diagramillustrating another alternative exemplary embodiment of a recipientprediction method 550 that may be used to create a list of additionalpossible recipients. In contrast to the other embodiments of therecipient prediction method, method 550 includes creating a set ofpossible recipient lists based on at least one known recipient. Thisallows the recipient prediction module 138 to provide a list of possibleadditional recipients in cases where a new recipient is being added tothe distribution list 304 of the current message 300. A new recipientmeans that this recipient is not in the distribution list of anypreviously received or sent electronic messages.

For example, assume that the user first enters a new recipient that isnot on any previous distribution lists and then indicates that anotherrecipient should be added to the distribution list 304 of the message300. The method 550 notes that the first recipient is a new recipient,generates an empty list of possible additional recipients and indicatesthat the user must manually enter the next recipient. Once, the userenters a known recipient, the method 550, at step 552, then creates aset of possible recipient lists based on the known recipient aspreviously described for step 352 of method 350. A known recipient is arecipient that is in a distribution list of a previously sent orreceived electronic message associated with the user. Steps 354 to 358are then performed as previously described.

In another instance, the user may have already entered one or more knownrecipients and then enters a new (i.e. unknown) recipient. Step 552 theninvolves determining that the set of possible recipient lists is emptysince no previous distribution lists include the new recipient. At step552, the recipient is identified as a new or unknown recipient and thestep then involves creating a list based on the currently knownrecipients in the distribution list 304. If this is done for all of thecurrently known recipients in the distribution list 304, the last set ofpossible recipient lists may be stored so that this set does not have tobe recreated when the latest recipient entered by the user is an unknownor new recipient and the distribution list 304 of the current message300 already includes at least one known recipient. Steps 354 to 358 arethen performed as previously described.

In one embodiment, step 552 can involve generating the set of possiblerecipient lists based on all known recipients in the distribution list304. In another embodiment, step 552 can involve generating the set ofpossible recipient lists based on at least one known recipient in thedistribution list 304.

Advantageously, method 550 can still provide the user with at least onepossible additional recipient to add to the distribution list 304 of thecurrent message 300 even when at least one of the current recipients inthe distribution list 304 is unknown. It should be understood thatmethod 550 can be combined with the numerical ordering of method 400,the weighting of method 450 or the filtering of method 500.

The implementation of the various recipient prediction methods describedherein may use a variety of data structures to increase computationalspeed so that the recipient prediction method can be executed withoutperceptible delay to the user. For instance, an array of arrays or aFIFO may be used. Other data structures that may be used are commonlyknown to those skilled in the art.

To summarize, at least one embodiment described herein involvespredicting a list of additional recipients for a communication messagewhen a user composes a communication message on a communication deviceand indicates that there are multiple recipients. Once the userindicates that the message is to be sent to more than one recipient, arecipient prediction method is performed that involves determining,based on message information including other messages sent by the user,a list of possible additional recipients to add to the distribution listof the message. Advantageously, this allows the user to add one or morerecipients to the distribution list while having to enter fewerkeystrokes or other input (i.e. scrolling and clicking). Variousalternatives exist for the recipient prediction method such as usingfilter data, weighting the possible additional recipients, and the like.

In one aspect, at least one embodiment described herein provides amethod of predicting possible additional recipients to add to adistribution list of a current electronic message composed by a user ona communications device. When the distribution list has at least oneknown recipient and the user attempts to add an additional recipient tothe distribution list, the method comprises:

a) creating a set of possible recipient lists that each include the atleast one known recipient;

b) generating a list of possible additional recipients from the set ofpossible recipient lists based on occurrences recipients that are in atleast one of the possible recipient lists and are not already in thedistribution list; and,

c) providing at least one entry from the list of possible additionalrecipients to allow the user to select the additional recipient to addto the distribution list if any possible additional recipients exist,otherwise allowing the user to manually enter the additional recipient.

In another aspect, at least one embodiment described herein provides acomputer program product for predicting possible additional recipientsto add to a distribution list of a current electronic message composedby a user on a communications device. The computer program productcomprises a computer readable medium embodying program code meansexecutable by a processor of the communications device for implementinga method for predicting the possible additional recipients, wherein whenthe distribution list has at least one known recipient and the userattempts to add an additional recipient, the method comprises:

a) creating a set of possible recipient lists that each include the atleast one known recipient;

b) generating a list of possible additional recipients from the set ofpossible recipient lists based on occurrences of recipients that are inat least one of the possible recipient lists and are not already in thedistribution list; and,

c) providing at least one entry from the list of possible additionalrecipients to allow the user to select the additional recipient to addto the distribution list if any possible additional recipients exist,otherwise allowing the user to manually enter the additional recipient.

In another aspect, at least one embodiment described herein provides amicroprocessor that controls the operation of the communications device;a communication subsystem connected to the microprocessor, thecommunication subsystem sends and receives data; a message applicationexecutable by the microprocessor, the message application allows a userto send electronic messages to two or more recipients; and, a recipientprediction module executable by the microprocessor, the recipientprediction module predicts possible additional recipients to add to adistribution list of a current electronic message composed by the useron the communications device, the distribution list having at least oneknown recipient, wherein when the user attempts to add an additionalrecipient to the distribution list, the recipient prediction modulepredicts the possible additional recipients by: creating a set ofpossible recipient lists that each include the at least one knownrecipient; generating a list of possible additional recipients from theset of possible recipient lists based on occurrences of recipients thatare in at least one of the possible recipient lists and are not alreadyin the distribution list; and, providing at least one entry from thelist of possible additional recipients to allow the user to select theadditional recipient to add to the distribution list if any possibleadditional recipient exist, otherwise allowing the user to manuallyenter the additional recipient.

It should be understood that various modifications can be made to theembodiments described and illustrated herein, without departing from theembodiments, the general scope of which is defined in the appendedclaims. It should also be understood that while the embodiments weredescribed for a mobile device, the embodiments are generally applicableto any communication or computing device that can send electronicmessages to two or more recipient addresses. For instance, theembodiments may be modified for implementation on a computer in whichthe communication subsystem may instead be a network connection or amodem.

1. A method of generating one or more possible additional recipients fora current electronic message that is being composed to be sent from acomputing device, wherein the method comprises: determining one or moreknown recipients for the current electronic message; generating one ormore additional recipients, the one or more additional recipients havingbeen included in one or more previously sent or received electronicmessages, the one or more previously sent or received electronicmessages additionally being comprised of the one or more knownrecipients; and displaying the one or more additional recipients in auser interface of the computing device, wherein each of the one or moreadditional recipients is individually selectable.
 2. The method of claim1, wherein the one or more additional recipients excludes the one ormore known recipients of the current electronic message.
 3. The methodof claim 1, wherein the current electronic message identifies a sender,and wherein the one or more additional recipients excludes the sender.4. The method of claim 3, wherein the generating comprises: for eachindividual recipient, excluding the one or more known recipients and thesender, that is identified in the one or more additional recipients,determining a frequency of occurrence of the individual recipient in theone or more previously sent or received messages; and displaying the oneor more individual recipients of the one or more additional recipientsin order of the frequency of occurrence.
 5. The method of claim 4,wherein the one or more individual recipients are displayed in order ofdecreasing frequency of occurrence.
 6. The method of claim 4, whereinexactly one individual recipient is identified in the one or moreadditional recipients, the exactly one individual recipient being theindividual recipient having a highest frequency of occurrence in the oneor more previously sent or received messages.
 7. The method of claim 3,wherein the generating comprises: for each individual recipient,excluding the one or more known recipients and the sender, determining aweight for the individual recipient based on frequency of occurrence ofthe individual recipient in the one or more previously sent or receivedmessages and on which address field of the one or more previously sentor received messages the individual recipient occurred; and identifyingone or more individual recipients in the one or more additionalrecipients, ordered by the weight.
 8. A computing device comprising aprocessor and a memory for generating one or more possible additionalrecipients for a current electronic message that is being composed to besent from the computing device, wherein the processor is configured to:determine one or more known recipients for the current electronicmessage; generate one or more additional recipients, the one or moreadditional recipients having been included in one or more previouslysent or received electronic messages, the one or more previously sent orreceived electronic messages additionally being comprised of the one ormore known recipients; and display the one or more additional recipientsin a user interface of the computing device, wherein each of the one ormore additional recipients is individually selectable.
 9. The computingdevice of claim 8, wherein the one or more additional recipientsexcludes the one or more known recipients of the current electronicmessage.
 10. The computing device of claim 8, wherein the currentelectronic message identifies a sender, and wherein the one or moreadditional recipients excludes the sender.
 11. The computing device ofclaim 10, wherein the processor is configured to generate the list ofpossible additional recipients by: for each individual recipient,excluding the one or more known recipients and the sender, that isidentified in the one or more additional recipients, determining afrequency of occurrence of the individual recipient in the one or morepreviously sent or received messages; and displaying the one or moreindividual recipients of the one or more additional recipients in orderof the frequency of occurrence.
 12. The computing device of claim 11,wherein the one or more individual recipients are displayed in order ofdecreasing frequency of occurrence.
 13. The computing device of claim11, wherein exactly one individual recipient is identified in the one ormore additional recipients, the exactly one individual recipient beingthe individual recipient having a highest frequency of occurrence in theone or more previously sent or received messages.
 14. The computingdevice of claim 10, wherein the processor is configured to generate thelist of possible additional recipients by: for each individualrecipient, excluding the one or more known recipients and the sender,determining a weight for the individual recipient based on frequency ofoccurrence of the individual recipient in the one or more previouslysent or received messages and on which address field of the one or morepreviously sent or received messages the individual recipient occurred;and identifying one or more individual recipients in the one or moreadditional recipients, ordered by the weight.
 15. A non-transitorycomputer readable medium storing instructions executable by a processorof a computing device, the instructions which, when executed by theprocessor, cause the processor to carry out a method of generating oneor more possible additional recipients for a current electronic messagethat is being composed to be sent from the computing device, wherein themethod comprises: determining one or more known recipients for thecurrent electronic message; generating one or more additionalrecipients, the one or more additional recipients having been includedin one or more previously sent or received electronic messages, the oneor more previously sent or received electronic messages additionallybeing comprised of the one or more known recipients; and displaying theone or more additional recipients in a user interface of the computingdevice, wherein each of the one or more additional recipients isindividually selectable.
 16. A method of displaying on a display of anelectronic device one or more possible additional recipients in acurrent electronic message having one or more known recipients, whereinthe method comprises: generating one or more possible additionalrecipients, the one or more possible additional recipients having beenincluded in a previously sent or received electronic message, thepreviously sent or received electronic message additionally beingcomprised of the one or more known recipients; and displaying on thedisplay the one or more possible additional recipients, each of the oneor more possible additional potential recipients being individuallyselectable.
 17. The method of claim 16, wherein the displayed one ormore possible additional recipients excludes the one or more knownrecipients.
 18. The method of claim 16, further comprising: receiving aselection input of one of the one or more possible additionalrecipients, and adding the selected additional recipient to the currentelectronic message.